package hardware

import "errors"

var ErrUnimplemented = errors.New("unimplemented")

type UnimplementedAdapter struct{}

func (u *UnimplementedAdapter) Scan(enable bool) <-chan []byte {
	return nil
}

func (u *UnimplementedAdapter) Configure(config []byte) error {
	return ErrUnimplemented
}

func (u *UnimplementedAdapter) Check() (isAlive bool, isScanActivate bool, adapterName string, err error) {
	return false, false, "", ErrUnimplemented
}

type UnimplementedController struct{}

func (u *UnimplementedController) DeviceConnect(devSpec []byte) error {
	return ErrUnimplemented
}

func (u *UnimplementedController) DeviceDisconnect(devHandle []byte) error {
	return ErrUnimplemented
}

func (u *UnimplementedController) DeviceHandles() ([][]byte, error) {
	return nil, ErrUnimplemented
}

func (u *UnimplementedController) ConnectRequest(devHandle []byte, connData []byte) error {
	return ErrUnimplemented
}

func (u *UnimplementedController) ConnectFree(devHandle []byte, connSpec []byte) error {
	return ErrUnimplemented
}

func (u *UnimplementedController) ConnectTransimit(devHandle []byte, connSpec []byte, transData []byte) error {
	return ErrUnimplemented
}

func (u *UnimplementedController) ConnectReceive(devHandle []byte, connSpec []byte) ([]byte, error) {
	return nil, ErrUnimplemented
}

func (u *UnimplementedController) ConnectCheck(devHandle []byte) ([]ConnectData, error) {
	return nil, ErrUnimplemented
}

func (u *UnimplementedController) ConnectConfigure(devHandle []byte, connSpec []byte, newConfig []byte) error {
	return ErrUnimplemented
}
